package com.tgit.sso.core.conf;

import com.tgit.sso.core.util.JedisUtil;

/**
 * 账号信息操作工具-对接redis
 * @author 范再军
 * 2018年9月12日
 */
public class SsoAccountInfoStore  {

    /**
     * 通过key的值，获取redis存储的账号信息
     * @param key
     * @return
     */
    public static SsoUser get(String key) {

        String redisKey = redisKey(key);
        Object objectValue = JedisUtil.getObjectValue(redisKey);
        if (objectValue != null) {
        	SsoUser ssoUser = (SsoUser) objectValue;
            return ssoUser;
        }
        return null;
    }

    /**
     * 清除通过key在redis的k-v
     * @param key
     */
    public static void remove(String key) {
        String redisKey = redisKey(key);
        JedisUtil.del(redisKey);
    }

    /**
     * 登录时插入到redis中的值
     * @param key
     * @param ssoUser
     */
    public static void put(String key, SsoUser ssoUser) {
        String expire = SsoConfigurationStore.get(SsoConf.SESSION_TIMEOUT);
        if(expire != null) {
            JedisUtil.setObjectValue(redisKey(key), ssoUser, Integer.valueOf(expire));
        } else {
            JedisUtil.setObjectValue(redisKey(key), ssoUser);
        }
    }

    /**
     * 获取正在的redis存储的key
     * @param key
     * @return
     */
    private static String redisKey(String key){
        return SsoConf.SSO_SESSIONID.concat("##").concat(key);
    }

}
